package cn.juque.workflow.api.provider;

import cn.juque.common.base.BaseResponseDTO;
import cn.juque.workflow.api.dto.processinfo.ProcessDeployParamDTO;
import cn.juque.workflow.api.dto.processinfo.ProcessInfoListDTO;
import cn.juque.workflow.api.dto.processinfo.ProcessInfoSearchDTO;
import cn.juque.workflow.api.dto.taskinfo.ProcessInfoDeleteDTO;

import java.util.List;

/**
 * @author JUQUE
 * @version 1.0.0
 * <ul>
 *  <li>simple-generator</li>
 *  <li>流程信息</li>
 * </ul>
 * @date 2023-01-27 15:45:40
 **/
public interface IProcessInfoProvider {

    /**
     * 列表检索
     *
     * @param searchDTO 入参
     * @return List
     */
    BaseResponseDTO<List<ProcessInfoListDTO>> list(ProcessInfoSearchDTO searchDTO);

    /**
     * 部署流程
     * @param paramDTO 参数
     * @return String
     */
    BaseResponseDTO<String> deploy(ProcessDeployParamDTO paramDTO);

    /**
     * 删除
     *
     * @param deleteDTO 入参
     * @return Boolean
     */
    BaseResponseDTO<Boolean> delete(ProcessInfoDeleteDTO deleteDTO);
}
